package com.wanmait.recycle.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.wanmait.recycle.pojo.Admin;
import com.wanmait.recycle.pojo.Userinfo;
import com.wanmait.recycle.util.Pager;

public interface UserinfoMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Userinfo record);

    int insertSelective(Userinfo record);

    int updateByPrimaryKeySelective(Userinfo record);

    int updateByPrimaryKeyWithBLOBs(Userinfo record);

    int updateByPrimaryKey(Userinfo record);
    
    
    //s根据条件获得所有的符合条件的用户
    List<Userinfo> findAllByExample(@Param("userinfo")Userinfo userinfo);
    //根据用户id来获得相应的用户
    Userinfo selectByPrimaryKey(Integer id);
    //获得总数
	int findAllByExampleCount(@Param("userinfo")Userinfo userinfo,@Param("pager")Pager pager);
	//根据关键词来查询用户
	List<Userinfo> findAllBySearch(@Param("searchStr")String searchStr,@Param("beginTime")String beginTime,@Param("endTime")String endTime,@Param("enable")String enable);
	
	//根据id来删除用户
	void deleteById(Integer id);
	//根据ids集合来删除用户
	void deleteByIds(String[] ids);
	//根据ids集合来删除用户
	void restoreByIds(String[] ids);
	//根据id来还原用户
	void restoreById(int i);
	
	//查询所有有认证图片的用户
	List<Userinfo> findAllApprovePic();

	//经过ids通过
	void passByIds(@Param("ids")String[] ids,@Param("admin")Admin admin,@Param("approveTime")String approveTime);
	//经过id来进行通过
	void passById(@Param("id")Integer id,@Param("admin")Admin admin,@Param("approveTime")String approveTime);
	//取消通过操作
	void unpassById(@Param("id")Integer id,@Param("admin")Admin admin,@Param("approveTime")String approveTime);

	
	//通过例子来获得一个用户对象
	Userinfo findUserByExample(Userinfo userinfo);
	//保存用户
	void saveUserinfo(Userinfo userinfo);
	//判断用户名是否重复
	Userinfo isUserinfoByExample(Userinfo userinfo);
	
	//通过id寻找用户具体信息 3.4 ad
	Userinfo findAllById(Integer id);
	
	//通过id更改用户验证邮箱 3.4 ad
	void updateMailById(@Param("id")Integer id, @Param("mailBox")String mailBox);
	//通过id更改用户电话 3.4 ad
	void updatePhoneById(@Param("id")Integer id,@Param("phone")String phone);
	//通过id更改用户头像 3.4 ad
	void updateHeadNameById(@Param("id")Integer id, @Param("headName")String headName);
	//通过id更改用户公司信息 3.4 ad 
	void updateCompanyById(Userinfo userinfo);
	//通过id更改用户密码 3.4 ad
	void updatePasswordById(@Param("id")Integer id, @Param("password")String password);
	//通过那么来更改用户密码
	void updatePasswordByName(@Param("name")String name, @Param("password")String newPass);
	//通过ids来查找多个用户
	List<Userinfo> findMore(String[] ids);
	
	List<Userinfo> selectUserCount();
	/*用户每次登录，更新最后一次登录时间，记录最后一次登录ip,登录次数加1 ZQ*/
	void updateIp(Userinfo userinfo);
	
	/*发布文章数量、贡献、提问、回答、收藏数量 ZQ*/
	void updateCount(Userinfo userinfo);
	
}








